<?php
class Site_Model_FreteCorreios
{
	private $soap;
	private $param;
	private $soapResult;
	
	public $valor;
	public $prazo;
	public $error;
	
	
	/*
	 * INFORMAÇÕES DO SERVIÇO
	 * 
	 * CÓDIGO  SERVIÇO 
	 * 40010  SEDEX sem contrato 
	 * 40045  SEDEX a Cobrar, sem contrato 
	 * 40126  SEDEX a Cobrar, com contrato 
	 * 40215  SEDEX 10, sem contrato 
	 * 40290  SEDEX Hoje, sem contrato 
	 * 40096  SEDEX com contrato 
	 * 40436  SEDEX com contrato 
	 * 40444  SEDEX com contrato 
	 * 40568  SEDEX com contrato 
	 * 40606  SEDEX com contrato 
	 * 41106  PAC sem contrato 
	 * 41068  PAC com contrato 
	 * 81019  e-SEDEX, com contrato 
	 * 81027  e-SEDEX Prioritário, com conrato 
	 * 81035  e-SEDEX Express, com contrato 
	 * 81868  (Grupo 1) e-SEDEX, com contrato 
	 * 81833  (Grupo 2) e-SEDEX, com contrato 
	 * 81850  (Grupo 3) e-SEDEX, com contrato
	 *
	 * 
	 * nCdFormato -> FORMATO DA ENCOMENDA (INCLUINDO EMBALAGEM)
	 * 1 – Formato caixa/pacote 
	 * 2 – Formato rolo/prisma 
	 * 3 - Envelope 
	 */
	
	public function __construct()
	{
		$this->soap = new SoapClient('http://ws.correios.com.br/calculador/CalcPrecoPrazo.asmx?WSDL');
		
		$this->nCdEmpresa = '';
		$this->sDsSenha = '';
		$this->sCepOrigem = '14403777';
		
		$this->sCdMaoPropria = 'N';
		$this->nVlValorDeclarado = '0';
		$this->sCdAvisoRecebimento = 'N';
	}
	
	public function __set($name, $value)
	{
		$this->param[ $name ] = $value;
	}
	
	public function getFrete()
	{
		$this->soapResult = $this->soap->CalcPrecoPrazo( $this->param );
		$obj = $this->soapResult->CalcPrecoPrazoResult->Servicos->cServico;
		
		$this->valor = $obj->Valor;
		$this->prazo = $obj->PrazoEntrega;
		$this->error = $obj->MsgErro;
		
		return $this;
	}
	
	public static function convertShippingType($val)
	{
		$matrix = array(
			'40010' => '1', //SEDEX sem contrato
			'40045' => '1', //SEDEX a Cobrar, sem contrato
			'40126' => '1', //SEDEX a Cobrar, com contrato
			'40215' => '1', //SEDEX 10, sem contrato
			'40290' => '1', //SEDEX Hoje, sem contrato
			'40096' => '1', //SEDEX com contrato
			'40436' => '1', //SEDEX com contrato
			'40444' => '1', //SEDEX com contrato
			'40568' => '1', //SEDEX com contrato
			'40606' => '1', //SEDEX com contrato
			'41106' => '2', //PAC sem contrato
			'41068' => '2', //PAC com contrato
			'81019' => '1', //e-SEDEX, com contrato
			'81027' => '1', //e-SEDEX Prioritário, com conrato
			'81035' => '1', //e-SEDEX Express, com contrato
			'81868' => '1', //(Grupo 1) e-SEDEX, com contrato
			'81833' => '1', //(Grupo 2) e-SEDEX, com contrato
			'81850' => '1' //(Grupo 3) e-SEDEX, com contrato
		);
		
		return $matrix[$val];
	}
}

